use traits::*;
use bit_vec::BitBlock;
use bit_set::{self, BitSet};
impl<B: BitBlock> OrderedCollection for BitSet<B> {}
impl<B: BitBlock> CollectLen for BitSet<B> {
fn len(&self) -> usize { (*self).len() }
}
impl<B: BitBlock> CollectCapacity for BitSet<B> {
fn capacity(&self) -> usize { (*self).capacity() }
}
impl<B: BitBlock> CollectClear for BitSet<B> {
fn clear(&mut self){ (*self).clear() }
}
impl<B: BitBlock> CollectShrinkToFit for BitSet<B> {
fn shrink_to_fit(&mut self){ (*self).shrink_to_fit() }
}
impl<B: BitBlock> CollectContains<usize> for BitSet<B> {
fn contains(&self, val: &usize) -> bool { (*self).contains(val) }
}
impl<'a, B: BitBlock + 'a> _CollectIter<'a> for BitSet<B> {
type Iter = bit_set::Iter<'a, B>;
}
impl<B: BitBlock + 'static> CollectIter for BitSet<B> {
fn iter<'a>(&'a self) -> <Self as _CollectIter<'a>>::Iter { (*self).iter() }
}
impl<B: BitBlock> CollectInsert<usize> for BitSet<B> {
type Ret = bool;
fn insert(&mut self, val: usize) -> Self::Ret { (*self).insert(val) }
}
impl<B: BitBlock> CollectRemove<usize> for BitSet<B> {
type Ret = bool;
fn remove(&mut self, val: &usize) -> Self::Ret { (*self).remove(val) }
}